Distributed-computing method for computing a metric representative of a difference between two data

ABSTRACT

A distributed-computing method for computing a metric f(X,Y) representative of a difference between a datum X comprising n bits (x 1 , . . . , x n ) and a datum Y, the metric f(X,Y) taking the form f(X,Y)=f X (X)+Σ i=1   n f i (x i ,Y)+f Y (Y), the method being implemented by a system comprising m+1 devices and including for any j ranging from 1 to m, computing, by way of the device of index j, at least one intermediate datum depending on the datum X and on the datum Y, and transmitting to the device of index m+1 at least one result comprising or depending on each intermediate datum, and determining, by way of the device of index m+1, the metric f(X,Y), the determining comprising summing each result to obtain a value equal to Σ i=1   n f i (x i ,Y) or a value equal to Σ i=1   n f i (x i ,Y)+f Y (Y).

TECHNICAL FIELD

The present disclosure relates to a method for computing a metric representative of a difference between two data, the method being advantageously applicable in the field of biometrics.

TECHNOLOGICAL BACKGROUND

Various metrics for determining whether two data are close or not are known. Hamming distance is one example thereof.

These metrics are especially used to compare an input biometric datum and a reference biometric datum enrolled and stored beforehand in a database.

Such databases and likewise any processing operations based on their content must be secured to retain confidentiality, this especially being the case for computation of a metric of the aforementioned type. Moreover, in certain countries, construction of such databases may be permitted only if this confidentiality is guaranteed.

SUMMARY

One aim of the present disclosure is to make secure computation of a metric representative of a difference between two data.

To this end, according to a first aspect, a distributed-computing method for computing a metric f(X,Y) representative of a difference between a datum X comprising n bits (x₁, . . . , x_(n)) and a datum Y is provided, the metric f(X,Y) taking the form:

f(X,Y)=f _(X)(X)+Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)+f _(Y)(Y)

where f_(X) is a function depending solely on the datum X, f_(Y) is a function depending solely on the datum Y, and for any i ranging from 1 to n, f_(i) is a predefined function, the method being implemented by a system comprising m+1 distinct devices (D₁, . . . , D_(m+1)) having respective indices ranging from 1 to m+1, with m≥2, the method comprising:

-   -   for any j ranging from 1 to m, computing at least one         intermediate datum by means of the device of index j (D_(j)),         each intermediate datum depending on the datum X and on the         datum Y, and transmitting to the device of index m+1 (D_(m+1))         at least one result comprising or depending on each intermediate         datum,     -   determining, by means of the device of index m+1 (D_(m+1)), the         metric f(X,Y), the determining comprising summing each result to         obtain a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y) or a value         equal to Σ_(i=1)f(x_(i),Y)+f_(Y)(Y).

The method according to the first aspect may also comprise the following optional features, which may be implemented on their own or in combination wherever technically possible.

In a first embodiment:

-   -   the datum X forms a vector of K data (X, . . . , X_(K)), where         for any i ranging from 1 to K, the datum X_(i) forms a vector of         l bits (x_(K(i−1)+1), . . . , x_(K(i−1)+l)),     -   the datum Y forms a vector (Y₁, . . . , Y_(K)), where for any i         ranging from 1 to K, Y_(i) is an integer,     -   n=K.l, where K>1 and l>1,     -   for any i ranging from 1 to K and for any p ranging from 1 to l:

f _(K(i−1)+p)(x _(K(i−1)+p) ,Y)=c _(p,i)(Y)·x _(K(i−1)+p)

where c_(p,i)(Y) is a scalar the value of which may depend on i, on p and on the datum Y,

-   -   for any j ranging from 1 to m, the device of index j (D_(j))         computes l intermediate data R_(j,1)(X), . . . , R_(j,l)(X),         each intermediate datum being computed as follows: for any p         ranging from 1 to l,

R _(j,p)(X)=Σ_(i=1) ^(n) DPF _(j,p)(a,c _(p,i)(Y);x _(K(i−1)+p))

where a is a predefined constant,

-   -   for any i ranging from 1 to K and for any p ranging from 1 to l,         DPF_(1,p)(a,c_(p,i)(Y); ⋅), . . . , DPF_(m,p)(a,c_(p,i)(Y); ⋅)         are m functions meeting the following conditions:

${{\sum}_{j = 1}^{m}DP{F_{j,p}\left( {a,{{c_{p,i}(Y)};x}} \right)}} = \left\{ \begin{matrix} {c_{p,i}(Y)} & {{{if}x} = a} \\ 0 & {{{if}x} \neq a} \end{matrix} \right.$

In this first embodiment, the method may comprise the following steps:

-   -   for any j ranging from 1 to m, computing, by means of the device         of index j (D_(j)), a result R_(j)(X) from the sum of the l         intermediate data R_(j,1)(X), . . . , R_(j,l)(X),     -   for any j ranging from 1 to m, transmitting the result R_(j)(X)         to the device of index m+1 (D_(m+1)),     -   summing, by means of the device of index m+1 (D_(m+1)), the m         results R₁(X), . . . , R_(m)(X) so as to obtain the value of the         term Σ_(i=1) ^(n)f_(i)(x_(i),Y).

Preferably, wherein for any j ranging from 1 to m, the result R_(j)(X) is obtained by summing the l intermediate data R_(j,1)(X), . . . , R_(j,l)(X) and a term f_(j)Y stored by the device of index j (D_(j)),

and wherein:

Σ_(j=1) ^(m) f _(j) Y=f _(Y)(Y)

In one variant of the first embodiment, allowing a metric consisting of a scalar product to be obtained:

a=1

f _(X)(X)=f _(Y)(Y)=0

and for any p ranging from 1 to l and for any i ranging from 1 to K:

c _(p,i)(Y)=2^(p−1) ·Y _(i)

In another variant of the first embodiment, allowing a metric consisting of the square of a Euclidean distance to be obtained:

a=1

f _(X)(X)=Σ_(i=1) ^(K) X _(i) ²

f _(Y)(Y)=Σ_(i=1) ^(K) Y _(i) ²

and wherein, for any p ranging from 1 to l and for any i ranging from 1 to K:

c _(p,i)(Y)=−2^(p) ·Y _(i)

In another variant of the first embodiment, allowing a Mahalanobis distance to be obtained:

a=1

f _(X)(X)=X ^(T) MX

f _(Y)(Y)=Y ^(T) MY

where M is a predefined square matrix of the form (M_(u,v))_(u,v=1, . . . , K), and wherein, for any p ranging from 1 to l and for any i ranging from 1 to K:

c _(p,i)(Y)=−2^(p)·Σ_(v=1) ^(K) M _(i,v) Y _(v)

In a second embodiment, allowing a metric consisting of a Hamming distance to be obtained:

-   -   the datum Y forms a vector of bits (y₁, . . . , y_(n)),     -   the following is true:

f _(X)(X)=f _(Y)(Y)=0

-   -   for any i ranging from 1 to n:

f _(i)(x _(i) ,Y)=x _(i) ⊕y _(i)

where ⊕ is an exclusive disjunction,

-   -   for any j ranging from 1 to m, the device of index j (D_(j))         computes an intermediate datum R_(j)(X), as follows:

R _(j)(X)=Σ_(i=1) ^(n) DPF _(j)(1−y _(i),1;x _(i))

in which DPF₁(0,1;⋅), . . . , DPF_(m)(0,1;⋅) are m functions meeting the following conditions:

${{\sum}_{j = 1}^{m}DP{F_{j}\left( {0,{1;x}} \right)}} = \left\{ \begin{matrix} 1 & {{{if}x} = 0} \\ 0 & {{{if}x} \neq 0} \end{matrix} \right.$

in which DPF₁(1,1;⋅), . . . , DPF_(m)(1,1;⋅) are m functions meeting the following conditions:

${{\sum}_{j = 1}^{m}DP{F_{j}\left( {1,{1;x}} \right)}} = \left\{ \begin{matrix} 1 & {{{if}x} = 1} \\ 0 & {{{if}x} \neq 1} \end{matrix} \right.$

and in which the device of index m+1 (D_(m+1)) obtains a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y) by summing the m results R₁(X), . . . , R_(m)(X).

Preferably, the datum X and the datum Y are biometric data.

According to a second aspect, a method is provided for carrying out biometric authentication or identification comprising steps of:

-   -   acquiring, by means of a sensor, a biometric datum X relating to         an individual,     -   computing a metric f(X,Y) representative of a difference between         the biometric datum X and a reference biometric datum Y by way         of the method according to the first aspect,     -   comparing the metric f(X,Y) and a predefined threshold.

Preferably, the comparing step comprises carrying out distributed computations on the m+1 devices (D₁, . . . , D_(m+1)).

According to a third aspect, a computer-readable memory storing instructions that are executable by the computer in order to execute the steps of the method according to the first aspect or according to the second aspect is also provided.

According to a fourth aspect, a distributed-computing system (4) for computing a metric f(X,Y) representative of a difference between a datum X comprising n bits (x₁, . . . , x_(n)) and a datum Y is also provided, wherein the metric f(X,Y) takes the form:

f(X,Y)=f _(X)(X)+Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)+f _(Y)(Y)

where f_(X) is a function depending on the datum X, f_(Y) is a function depending on the datum Y, and for any i ranging from 1 to n, f_(i) is a predefined function, the system comprising m+1 distinct devices (D₁, . . . , D_(m+1)) having respective indices ranging from 1 to m+1, with m≥2, in which:

-   -   for any j ranging from 1 to m, the device of index j (D_(j)) is         configured to compute at least one intermediate datum, each         intermediate datum depending on the datum X and on the datum Y,         and to transmit to the device of index m+1 (D_(m+1)) at least         one result comprising or depending on each intermediate datum,     -   the device of index m+1 (D_(m+1)) is configured to determine the         metric f(X,Y), this determining comprising summing each result         to obtain the value of the term Σ_(i=1) ^(n)f_(i)(x_(i),Y) or         the value of the term Σ_(i=1) ^(n)f_(i)(x_(i),Y)+f_(Y)(Y).

According to a fifth aspect, a system is provided for carrying out biometric authentication or identification comprising:

-   -   a biometric sensor configured to acquire a biometric datum X         relating to an individual,     -   a computing system (4) according to the fourth aspect for         computing a metric f(X,Y) representative of a difference between         the biometric datum X and a reference biometric datum Y,     -   comparing the metric f(X,Y) and a predefined threshold.

DESCRIPTION OF THE FIGURES

Further features, aims and advantages will become apparent from the following description, which is purely illustrative and non-limiting and which should be read with reference to the appended drawings, in which:

FIG. 1 schematically illustrates a biometric authentication or identification system according to one embodiment.

FIG. 2 is a flowchart of steps of a biometric authentication or identification method according to one embodiment.

In all of the figures, elements that are similar have been designated by identical references.

DETAILED DESCRIPTION OF THE INVENTION

1) Biometric Authentication or Identification System

With reference to FIG. 1 , a biometric authentication or identification system 1 comprises a biometric sensor 2 and a computing system 4.

The biometric sensor 2 is configured to acquire a biometric datum X relating to an individual. The biometric datum X may be obtained from a finger print or from an iris print or from a face for example. The biometric datum X comprises n bits (x₁, . . . ,x_(n)).

The function of the computing system 4 is to carry out processing operations, and especially to compute a metric f(X,Y) representative of a difference between the biometric datum X acquired by the biometric sensor and a biometric datum Y. The biometric datum Y is a reference datum enrolled beforehand (for example by way of the biometric sensor 2 or indeed of another biometric sensor).

The computing system 4 comprises m+1 distinct devices D₁, . . . ,D_(m+1) having respective indices ranging from 1 to m+1, with m≥2. It is in particular possible to choose m=2. The devices D₁, . . . , D_(m+1) are remote from one another, and interconnected by a network of any type, whether wired or not.

The m devices D₁, . . . ,D_(m) are intended to carry out computations in parallel, these computations forming various contributions to the computation of the metric f(X,Y).

For any j ranging from 1 to m, the device D_(j) comprises an input interface for receiving the biometric datum X, and for moreover receiving the biometric datum Y or indeed precomputed data that depend on the biometric datum Y.

In one variant, the biometric datum Y is stored in a local or remote database to which the device D_(j) has access.

In another advantageous variant, precomputed data that depend on the biometric datum Y are stored by the device D_(j) and the biometric datum Y is not stored as such either in the computing system 4 or in a local or remote database. Furthermore, each device Dj stores only one portion of the precomputed data depending on the biometric datum Y. This variant is advantageous because it improves the confidentiality of the biometric datum Y. In certain embodiments that will be described in detail below, the precomputed data comprise functions of the form DPF_(1,p)(a,c_(p,i)(Y);⋅).

For any j ranging from 1 to m, the device D_(j) comprises at least one processor configured to apply processing that forms one contribution to the computation of the metric f(X,Y). The or each processor is of any type, for example a programmable circuit (ASIC, FPGA) or a circuit that is not programmable. The device D_(j) further comprises a memory that stores a program comprising code instructions for applying this processing, when the program is executed by the or each processor of the device D_(j).

For any j ranging from 1 to m, the device D_(j) comprises an output interface for transmitting data to the device D_(m+1).

The device D_(m+1) comprises an input interface for receiving data emanating from the m devices D₁, . . . , D_(m+1).

The device D_(m+1) moreover comprises at least one processor configured to apply processing especially comprising a final contribution to the computation of the metric f(X,Y). The or each processor is of any type, for example a programmable circuit (ASIC, FPGA) or a circuit that is not programmable. The device D_(m+1) further comprises a memory that stores a program comprising code instructions for applying this processing, when the program is executed by the or each processor of the device D_(m+1).

2) General Considerations Regarding the Metric f(X,Y)

The computing system 4 is in particular configured to compute a metric f(X,Y) of the following form:

f(X,Y)=f _(X)(X)+Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)+f _(Y)(Y)

where f_(X) is a function depending on the datum X, f_(Y) is a function depending on the datum Y, and for any i ranging from 1 to n, f_(i) is a predefined function.

The metric f(X,Y) may in particular be one of the following metrics:

-   -   The scalar product of the biometric data X and Y,     -   The square of the Euclidean distance between the biometric data         X and Y,     -   The square of the Mahalanobis distance between the biometric         data X and Y,     -   The Hamming distance between the biometric data X and Y.

These various embodiments are described in detail below.

3) Biometric Authentication or Identification Method

With reference to FIG. 2 , a biometric authentication or identification method implemented by the system 1 comprises the following steps.

In an acquiring step 100, the biometric sensor 2 acquires the biometric datum X. The biometric datum X is transmitted by the biometric sensor 2 to the devices D₁, . . . , D_(m).

For any j ranging from 1 to m, the device D_(j) implements a processing operation designated by the reference 102 _(j). The processing operation 102 _(j) comprises computing at least one intermediate datum, each intermediate datum depending on the datum X and on the datum Y, and transmitting to the device D_(m+1) at least one result comprising or depending on each intermediate datum.

In a step 104, the device D_(m+1) determines the metric f(X,Y) and to do so makes use of each result produced in the preceding steps. The procedure used to determine the metric in particular comprises summing each result delivered by the devices D₁, . . . , D_(m) to obtain a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y) or a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y)+f_(Y)(Y). The summation carried out and value obtained by the device D_(m+1) depend on the type of metric computed, as will be seen below.

In a step 106, the device D_(m+1) compares the computed metric f(X,Y) with a threshold. On the basis of this comparison, the device D_(m+1) generates an authentication or identification result.

If the metric f(X,Y) is lower than the threshold, then the difference between the biometric data X and Y is considered to be small. In other words, the biometric datum X is considered to correspond to the biometric datum Y enrolled beforehand. In this case, the authentication or identification result generated by the system 1 is positive. The individual to whom the biometric datum X relates is then authenticated or identified.

If in contrast the metric f(X,Y) is not lower than the threshold, then the difference between the biometric data X and Y is considered to be large. In other words, the biometric datum X is considered not to correspond to the biometric datum Y enrolled beforehand. In this case, the authentication or identification result is negative. The individual to whom the biometric datum X relates is then not authenticated or identified.

The biometric authentication or identification method may be used in various applications. One thereof is control of access to a secure zone, for example a zone of embarkation into a means of transport such as an aeroplane.

3.1) Scalar Product

In a first embodiment, the metric f(X,Y) is the scalar product of the biometric data X and Y.

The input data of the computation of the metric f(X,Y) are then of the following form:

-   -   n=K.l, where K>1 and l>1.     -   The datum X forms a vector of K data (X₁, . . . , X_(K)), where         for any i ranging from l to K, the datum X_(i) forms a vector of         l bits (x_(K(i−1)+1), . . . , x_(K(i−1)+l)).     -   The datum Y forms a vector (Y₁, . . . , Y_(K)), where for any i         ranging from 1 to K, Y_(i) is an integer.

Moreover, for any i ranging from 1 to K and for any p ranging from 1 to l:

f _(K(i−1)+p)(x _(K(i−1)+p) ,Y)=c _(p,i)(Y)·x _(K(i−1)+p)

where c_(p,i)(Y) is a scalar the value of which may depend on i, on p and on the datum Y.

More precisely, in the first embodiment, for any p ranging from 1 to l and for any i ranging from 1 to K:

c _(p,i)(Y)=2^(p−1) ·Y _(i)

f _(X)(X)=f _(Y)(Y)=0

Moreover, the processing operations implemented by the computing system 4 are then the following.

The terms c_(p,i)(Y) may be computed in a preliminary step, before the acquiring step 100, or even for example during the enrollment of the biometric datum Y. Once computed, these terms c_(p,i)(Y) are stored in memory by the devices D₁ to D_(m). Thus, when the biometric datum X is subsequently received by the computing system 4, the terms c_(p,i)(Y) are available.

Moreover, for any j ranging from 1 to m, the device D_(j) computes l intermediate data R_(j,1)(X), . . . , R_(j,l)(X) in step 102 _(j), each intermediate datum being computed as follows. For any p ranging from 1 to l,

R _(j,p)(X)=Σ_(i=1) ^(K) DPF _(j,p)(a,c _(p,i)(Y);x _(K(i−1)+p))

where a is a predefined constant equal to 1, and where, for any i ranging from 1 to K and for any p ranging from 1 to l, DPF_(1,p)(a,c_(p,i)(Y);⋅), . . . , DPF_(m,p)(a,c_(p,i)(Y);⋅) are m functions meeting the following conditions:

Σ_(j=1) ^(m) DPF _(j,p)(a,c _(p,i)(Y);x)=c _(p,i)(Y) if x=a

Σ_(j=1) ^(m) =DPF _(j,p)(a,c _(p,i)(Y);x)=0 if x≠a.

Thus, the m functions DPF_(1,p)(a,c_(p,i)(Y);⋅), . . . , DPF_(m,p)(a,c_(p,i)(Y);⋅) form a distributed point function on the m devices D₁ to D_(m), respectively.

As indicated above, these m functions (depending on the terms c_(p,i)(Y) and on a) are preferably computed in advance and stored in the respective memories of the m devices D₁ to D_(m), and the biometric datum Y is for its part not stored as such either in the computing system 4 or in a local or remote database.

Next, for any j ranging from 1 to m, the device D_(j) computes, in step 102 _(j), a result R_(j)(X) from the sum of the l intermediate data R_(j,1)(X), . . . , R_(j,l)(X). More precisely, in the first embodiment, the result R_(j)(X) is the sum of these l data, i.e.:

R _(j)(X)=Σ_(p=1) ^(l) R _(j,p)(X)

Next, for any j ranging from 1 to m, the device D_(j) transmits the result R_(j)(X) to the device D_(m+1) of index m+1.

Thus, in the first embodiment, the device D_(m+1) receives m results R₁(X), . . . , R_(m)(X) delivered by the devices D₁, . . . , D_(m), respectively.

To obtain the value Σ_(i=1) ^(n)f_(i)(x_(i),Y) (and therefore the scalar product f(X,Y) then f_(X)(X)=f_(Y)(Y)=0), the device D_(m+1) computes the sum of these m results, as follows:

Σ_(j=1) ^(m) R _(j)(X)=Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)=f(X,Y)

3.2) Square of the Euclidean Distance

In a second embodiment, the metric f(X,Y) is the square of the Euclidean distance between the biometric data X and Y.

The input data take the same form as in the first embodiment, and again, for any i ranging from 1 to K and for any p ranging from 1 to l:

f _(K(i−1)+p)(x _(K(i−1)+p) ,Y)=c _(p,i)(Y)·x _(K(i−1)+p)

where c_(p,i)(Y) is a scalar the value of which may depend on i, on p and on the datum Y.

However, unlike the first embodiment, for any p ranging from 1 to l and for any i ranging from 1 to K:

c _(p,i)(Y)=−2^(p) ·Y _(i)

Moreover:

f _(X)(X)=Σ_(i=1) ^(K) X _(i) ²

f _(Y)(Y)=Σ_(i=1) ^(K) Y _(i) ²

It is therefore necessary, in the second embodiment, to compute the terms f_(X)(X) and f_(Y)(Y), which are in principle not zero in contrast to the first embodiment.

The term f_(X)(X) may be computed by one of the m+1 devices of the computing system 4 from the biometric datum X, for example by the device D_(m+1) or indeed by one of the other devices of the system.

In one advantageous variant, the term f_(X)(X) is computed by a device that is associated with the biometric sensor 2 (and that does not necessarily form part of the computing system 4) then is transmitted to the device D_(m+1) or to one of the other devices of the system, which will then possibly include it in its result, which will subsequently be transmitted to the device D_(m+1).

In one simple variant, the term f_(Y)(Y) is stored in memory by the device D_(m+1) in advance. The term f_(Y)(Y) may then be computed in advance, before the acquiring step 100, by any one of the devices of the computing system 4. In this simple variant, the m results R_(j)(X) are computed as in the first embodiment, and all that device D_(m+1) need do is to sum the m results R_(j)(X) with the terms f_(X)(X) and f_(Y)(Y) to obtain the metric f(X,Y) consisting of the square of the Euclidean distance between the biometric data X and Y.

In another variant, which is more secure and therefore advantageous, the computation of the f_(Y)(Y) is distributed over the m devices D₁ to D_(m). From the biometric datum Y, m terms f₁Y, . . . , f_(m)Y are computed in advance, these terms meeting the following condition:

Σ_(j=1) ^(m) f _(j) Y=f _(Y)(Y)

For any j ranging from 1 to m, the device D_(j) stores in its memory the term f_(j)Y.

In this other variant, for any j ranging from 1 to m, the device D_(j) computes the result R_(j)(X) as follows:

R _(j)(X)=Σ_(p=1) ^(l) R _(j,p)(X)+f _(j) Y

Thus, each result R_(j)(X) already includes a “segment” of the term f_(Y)(Y) and hence, subsequently, the device D_(m+1) is able to obtain a value equal to Σ_(i=1) ^(m)R_(j)(X)+f_(Y)(Y) by summing the m results delivered by the devices D₁ to D_(m), respectively. In other words:

Σ_(j=1) ^(m) R _(j)(X)=Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)+f _(Y)(Y)

This other variant is more secure, and therefore advantageous, because it allows the metric f(X,Y) to be computed without explicitly computing the term f_(Y)(Y). The value of the term f_(Y)(Y) cannot therefore be found in the memory of any one of the devices of the computing system 4.

3.3) Square of the Mahalanobis Distance

In a third embodiment, the metric f(X,Y) is the square of the Mahalanobis distance between the biometric data X and Y.

The input data take the same form as in the first embodiment and second embodiment, and again, for any i ranging from 1 to K and for any p ranging from 1 to l:

f _(K(i−1)+p)(x _(K(i−1)+p) ,Y)=c _(p,i)(Y)·x _(K(i−1)+p)

where c_(p,i)(Y) is a scalar the value of which depends on i, on p and on the datum Y, just as in the second embodiment.

However, unlike in the second embodiment:

f _(X)(X)=X ^(T) MX

f _(Y)(Y)=Y ^(T) MY

where M is a predefined square matrix of the form (M_(u,v))_(u,v=1, . . . , K).

Moreover, for any p ranging from 1 to l and for any i ranging from 1 to K:

c _(p,i)(Y)=−2^(p)·Σ_(v=1) ^(K) M _(i,v) Y _(v).

It may therefore be seen that the coefficients c_(p,i)(Y) are also dependent on the predefined matrix M.

Apart from these differences, the steps implemented in the second embodiment are also implemented in the third embodiment. It will in particular be noted that the two variants handling the term f_(Y)(Y) differently are applicable to the third embodiment.

3.4) Hamming Distance

In a fourth embodiment, the metric f(X,Y) is the Hamming distance between the biometric data X and Y.

In the fourth embodiment, the datum Y is simply processed as a vector of bits (y₁, . . . , y_(n)).

Moreover:

f _(X)(X)=f _(Y)(Y)=0

f _(i)(x _(i) ,Y)=x _(i) ⊕y _(i)

where ⊕ is an exclusive disjunction.

In the fourth embodiment, for any j ranging from 1 to m, the device D_(j) computes an intermediate datum R_(j)(X) as follows in step 102 _(j):

R _(j)(X)=Σ_(i=1) ^(n) DPF _(j)(1−y _(i),1;x _(i))

in which DPF₁(0,1;⋅), . . . , DPF_(m)(0,1;⋅) are m functions meeting the following conditions:

Σ_(j=1) ^(m) DPF _(j)(0,1;x)=1 if x=0

Σ_(j=1) ^(m) DPF _(j)(0,1;x)=0 if x≠0

and in which DPF₁(1,1;⋅), . . . , DPF_(m)(1,1;⋅) are m functions meeting the following conditions:

Σ_(j=1) ^(m) DPF _(j)(1,1;x)=1 if x=1

Σ_(j=1) ^(m) DPF _(j)(1,1;x)=0 if x≠1

The m functions DPF₁(0,1;⋅), . . . , DPF_(m)(0,1;⋅) form one distributed point function on the m devices D₁ to D_(m), respectively. The m functions DPF₁(1,1;⋅), . . . , DPF_(m)(1,1;⋅) form another distributed point function on the m devices D₁ to D_(m), respectively.

Thus, in this fourth embodiment, for any j ranging from 1 to m, the device D_(j) computes only one intermediate datum, forming a single result R_(j)(X).

The device D_(m+1) obtains a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y) by summing the m results R₁(X), . . . , R_(m)(X).

4) Other Variants of Embodiment

Above, embodiments in which the comparison between the metric f(X,Y) and the threshold is a step 106 implemented by the device D_(m+1) were described. As a variant, it is possible for this comparison to be made in a distributed manner, i.e. to delegate to the devices D₁ to D_(m) additional computations producing contributions to this comparison. Such a distribution is known to those skilled in the art, and has been described in the document “Function Secret Sharing: Improvements and Extensions”, by Elette Boyle et al., CCS 2016. Said contributions may be added to the intermediate data discussed above, so as to be included in the results that are subsequently transmitted to the device D_(m+1).

Moreover, embodiments have been described in which intermediate data are summed by the devices D₁ to D_(m) so as to produce results that are then transmitted to the device D_(m+1). As a variant, it is conceivable for the devices D₁ to D_(m) to separately transmit the intermediate data to the device D_(m+1), and for the task of summing said data to be delegated to the device D_(m+1). 

1. A distributed-computing method for computing a metric f(X,Y) representative of a difference between a datum X having n bits (x₁, . . . , x_(n)) and a datum Y, the metric f(X,Y) taking the form: f(X,Y)=f _(X)(X)+Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)+f _(Y)(Y) where f_(X) is a function depending solely on the datum X, f_(Y) is a function depending solely on the datum Y, and for any i ranging from 1 to n, f_(i) is a predefined function, the method being implemented by a system including m+1 distinct devices (D₁, . . . , D_(m+1)) having respective indices ranging from 1 to m+1, with m≥2, the method comprising: for any j ranging from 1 to m, computing at least one intermediate datum by way of the device of index j (D_(j)), each intermediate datum depending on the datum X and on the datum Y, and transmitting to the device of index m+1 (D_(m+1)) at least one result including or depending on each intermediate datum; and determining, by way of the device of index m+1 (D_(m+1)), the metric f(X,Y), the determining including summing each result to obtain a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y) or a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y)+f_(Y)(Y).
 2. The distributed-computing method according to claim 1, wherein: the datum X forms a vector of K data (X₁, . . . , X_(K)), where for any i ranging from 1 to K, datum X_(i) forms a vector of l bits (x_(K(i−1)+1), . . . , x_(K(i−1)+l)), the datum Y forms a vector (Y₁, . . . , Y_(K)), where for any i ranging from 1 to K, Y_(i) is an integer, n=K.l, where K>1 and l>1, for any i ranging from 1 to K and for any p ranging from 1 to l: f _(K(i−1)+p)(x _(K(i−1)+p) ,Y)=c _(p,i)(Y)·x _(K(i−1)+p) where c_(p,i)(Y) is a scalar a value of which may depend on i, on p and on the datum Y, for any j ranging from 1 to m, the device of index j (D_(j)) computes l intermediate data R_(j,1)(X), . . . , R_(j,l)(X), each intermediate datum being computed as follows: for any p ranging from 1 to l, R _(j,p)(X)=Σ_(i=1) ^(K) DPF _(j,p)(a,c _(p,i)(Y);x _(K(i−1)+p)) where a is a predefined constant, and for any i ranging from 1 to K and for any p ranging from 1 to l, DPF_(1,p)(a,c_(p,i)(Y);⋅) , . . . , DPF_(m,p)(a,c_(p,i)(Y);⋅) are m functions meeting the following conditions: Σ_(j=1) ^(m) DPF _(j,p)(a,c _(p,i)(Y);x)=c _(p,i)(Y) if x=a Σ_(j=1) ^(m) DPF _(j,p)(a,c _(p,i)(Y);x)=0 if x≠a.
 3. The distributed-computing method according to claim 2, further comprising: for any j ranging from 1 to m, computing, by way of the device of index j (D_(j)), a result R_(j)(X) from sum of the l intermediate data R_(j,1)(X), . . . , R_(j,l)(X); for any j ranging from 1 to m, transmitting the result R_(j)(X) to the device of index m+1 (D_(m+1)); and summing, by way of the device of index m+1 (D_(m+1)), the m results R₁(X), . . . , R_(m)(X) to obtain a value of term Σ_(i=1) ^(n)f_(i)(x_(i),Y).
 4. The distributed-computing method according to claim 2, wherein for any j ranging from 1 to m, the result R_(j)(X) is obtained by summing the l intermediate data R_(j,1)(X), . . . , R_(j,l)(X) and a term f_(j)Y stored by the device of index j (D_(j)), and wherein: Σ_(j=1) ^(m) f _(j) Y=f _(Y)(Y).
 5. The distributed-computing method according to claim 2, wherein: a=1 f _(X)(X)=f _(Y)(Y)=0 and for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=2^(p−1) ·Y _(i).
 6. The distributed-computing method according to claim 2, wherein: a=1 f _(X)(X)=Σ_(i=1) ^(K) X _(i) ² f _(Y)(Y)=Σ_(i=1) ^(K) Y _(i) ² and wherein, for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=−2^(p) ·Y _(i).
 7. The distributed-computing method according to claim 2, wherein: a=1 f _(X)(X)=X ^(T) MX f _(Y)(Y)=Y ^(T) MY where M is a predefined square matrix of form (M_(u,v))_(u,v=1, . . . , K), and wherein, for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=−2^(p)·Σ_(v=1) ^(K) M _(i,v) Y _(v).
 8. The distributed-computing method according to claim 1, wherein: the datum Y forms a vector of bits (y₁, . . . , y_(n)), the following is true: f _(X)(X)=f _(Y)(Y)=0 for any i ranging from 1 to n: f _(i)(x _(i) ,Y)=x _(i) ⊕y _(i) where ⊕ is an exclusive disjunction, for any j ranging from 1 to m, the device of index j (D_(j)) computes an intermediate datum R_(j)(X), as follows: R _(j)(X)=Σ_(i=1) ^(n) DPF _(j)(1−y _(i),1;x _(i)) in which DPF₁(0,1;⋅), . . . , DPF_(m)(0,1;⋅) are m functions meeting the following conditions: Σ_(j=1) ^(m) DPF _(j)(0,1;x)=1 if x=0 Σ_(j=1) ^(m) DPF _(j)(0,1;x)=0 if x≠0 in which DPF₁(1,1;⋅), . . . , DPF_(m)(1,1;⋅) are m functions meeting the following conditions: Σ_(j=1) ^(m) DPF _(j)(1,1;x)=1 if x=1 Σ_(j=m) DPF _(j)(1,1;x)=0 if x≠1 and in which the device of index m+1 (D_(m+1)) obtains a value equal to Σ_(i=1) ^(n)f_(i)(x_(i),Y) by summing the m results R₁(X), . . . , R_(m)(X).
 9. The distributed-computing method according to claim 1, wherein the datum X and the datum Y are biometric data.
 10. A method for carrying out biometric authentication or identification comprising: acquiring, by way of a sensor, a biometric datum X relating to an individual; computing a metric f(X,Y) representative of a difference between the biometric datum X and a reference biometric datum Y by way of the method according to claim 1; and comparing the metric f(X,Y) and a predefined threshold.
 11. The method according to claim 10, wherein the comparing further comprises carrying out distributed computations on the m+1 devices (D₁, . . . , D_(m+1)).
 12. A non-transitory computer-readable memory storing instructions that are executable by a computer in order to execute the method according to claim
 1. 13. A distributed-computing system for computing a metric f(X,Y) representative of a difference between a datum X comprising n bits (x₁, . . . , x_(n)) and a datum Y, wherein the metric f(X,Y) takes the form: f(X,Y)=f _(X)(X)+Σ_(i=1) ^(n) f _(i)(x _(i) ,Y)+f _(Y)(Y) where f_(X) is a function depending on the datum X, f_(Y) is a function depending on the datum Y, and for any i ranging from 1 to n, f_(i) is a predefined function, the system comprising: m+1 distinct devices (D₁, . . . , D_(m+1)) having respective indices ranging from 1 to m+1, with m≥2, wherein for any j ranging from 1 to m, a device of index j (D_(j)) is configured to compute at least one intermediate datum, each intermediate datum depending on the datum X and on the datum Y, and to transmit to the device of index m+1 (D_(m+1)) at least one result comprising or depending on each intermediate datum, and a device of index m+1 (D_(m+1)) is configured to determine the metric f(X,Y), this determining including summing each result to obtain the value of the term Σ_(i=1) ^(n)f_(i)(x_(i),Y) or the value of the term Σ_(i=1) ^(n)f_(i)(x_(i),Y)+f_(Y)(Y).
 14. A system for carrying out biometric authentication or identification comprising: a biometric sensor configured to acquire a biometric datum X relating to an individual; the distributed-computing computing system according to claim 13, wherein a metric f(X,Y) representative of a difference between the biometric datum X and a reference biometric datum Y is computed, and the metric f(X,Y) and a predefined threshold are compared.
 15. The distributed-computing method according to claim 3, wherein for any j ranging from 1 to m, the result R_(j)(X) is obtained by summing the l intermediate data R_(j,1)(X), . . . , R_(j,l)(X) and a term f_(j)Y stored by the device of index j (D_(j)), and wherein: Σ_(j=1) ^(m) f _(j) Y=f _(Y)(Y).
 16. The distributed-computing method according to claim 3, wherein: a=1 f _(X)(X)=f _(Y)(Y)=0 and for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=2^(p−1) ·Y _(i).
 17. The distributed-computing method according to claim 4, wherein: a=1 f _(X)(X)=f _(Y)(Y)=0 and for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=2^(p−1) ·Y _(i).
 18. The distributed-computing method according to claim 3, wherein: a=1 f _(X)(X)=Σ_(i=1) ^(K) X _(i) ² f _(Y)(Y)=Σ_(i=1) ^(K) Y _(i) ² and wherein, for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=−2^(p) ·Y _(i).
 19. The distributed-computing method according to claim 4, wherein: a=1 f _(X)(X)=Σ_(i=1) ^(K) X _(i) ² f _(Y)(Y)=Σ_(i=1) ^(K) Y _(i) ² and wherein, for any p ranging from 1 to l and for any i ranging from 1 to K: c _(p,i)(Y)=−2^(p) ·Y _(i). 